package main

import (
	"fmt"
	"runtime"
	"sync"
)

var wg sync.WaitGroup

func hello(i int)  {
	defer wg.Done()

	fmt.Println(i)
}
func main() {
	//for i:=0;i<10;i++{
	//	wg.Add(1)
	//	go hello(i)
	//}
	//wg.Wait()
	//fmt.Println("主线程结束")



	runtime.GOMAXPROCS(1)//Go1.5版本之前，默认使用的是单核心执行。Go1.5版本之后，默认使用全部的CPU逻辑核心数。
	go func(s string) {
			for i:=1;i<=2;i++{
				fmt.Println("s")
				runtime.Goexit()
			}
		}("world")

		for i:=0;i<2;i++{


			//让出cpu时间片，等待重新分配任务
			runtime.Gosched()
			//runtime.Goexit()
			fmt.Println("hello")
		}





	//go func() {
	//	defer fmt.Println("A.defer")
	//	func() {
	//		defer fmt.Println("B.defer")
	//		// 结束协程
	//		runtime.Goexit()
	//		defer fmt.Println("C.defer")
	//		fmt.Println("B")
	//	}()
	//	fmt.Println("A")
	//}()
	//for {
	//}


}
